perm filename MILDOC[1,VDS] blob
sn#048949 filedate 1973-06-09 generic text, type T, neo UTF8
MILISY REVISIONS FEBRUARY, 1973
BY ARTHUR FLEXSER, PSYCHOLOGY DEPT., STANFORD UNIV.
1. INTERPRETATION OF RELATIVE CLAUSES
IN ORDER TO INTERPRET RELATIVE CLAUSES, MILISY MUST BE
CAPABLE OF HANDLING NESTED CLAUSES, SUCH AS "THE BALL WHICH IS UNDER
THE TABLE WHICH IS ON THE BLACK FLOOR". THE FUNCTION INTERPRET-NP
HAS BEEN REWRITTEN RECURSIVELY, WITH PART OF ITS DUTIES TAKEN OVER BY
THE NEW FUNCTION INTERPRET-NP1, IN ORDER TO ALLOW IT TO UNPACK
PHRASES SUCH AS THIS FROM THE INSIDE OUT-- I.E., STARTING WITH THE
NOUN PHRASE WHICH IS DEEPEST IN THE TREE.
THE NEW TRANSFORMATION RULE T-REL-CL ACCOMPLISHES THE ACTUAL
INTERPRETATION. THE FOLLOWING TREE-TRACE WILL SHOW HOW THIS OCCURS:
---------------------------------------------------------------------
HELLO
***(A BALL WHICH IS ON A TABLE WHICH IS RED IS SMALL)
THE FACT LIST IS INITIALLY:
NIL
(<S>
(<SD>
(<NP>
(%DET A)
(<NP1>
(<MOD1> NIL)
(%NOUN BALL)
(<REL-CL>
(%WH WHICH)
(<COP>
(%BE IS)
(<NEG> NIL))
(<PRED>
(<PP>
(%PREP ON)
(<NP>
(%DET A)
(<NP1>
(<MOD1> NIL)
(%NOUN TABLE)
(<REL-CL>
(%WH WHICH)
(<COP>
(%BE IS)
(<NEG> NIL))
(<PRED>
(<ADJ>
(%COLOR RED)))))))))))
(<VP>
(<COP>
(%BE IS)
(<NEG> NIL))
(<PRED>
(<ADJ>
(%SIZE SMALL))))))
(APPLY T-SD)
(<S>
RECORD
(SS
(<NEG> NIL)
(<NP>
(%DET A)
(<NP1>
(<MOD1> NIL)
(%NOUN BALL)
(<REL-CL>
(%WH WHICH)
(<COP>
(%BE IS)
(<NEG> NIL))
(<PRED>
(<PP>
(%PREP ON)
(<NP>
(%DET A)
(<NP1>
(<MOD1> NIL)
(%NOUN TABLE)
(<REL-CL>
(%WH WHICH)
(<COP>
(%BE IS)
(<NEG> NIL))
(<PRED>
(<ADJ>
(%COLOR RED)))))))))))
(<PRED>
(<ADJ>
(%SIZE SMALL)))))
(ENTERING 1 INTERPRET-NP) (INTERPRET-NP ((<NP> (%DET A) (<NP1> (<MOD1~
> NIL) (%NOUN BALL) (<REL-CL> (%WH WHICH) (<COP> (%BE IS) (<NEG> NIL)~
) (<PRED> (<PP> (%PREP ON) (<NP> (%DET A) (<NP1> (<MOD1> NIL) (%NOUN ~
TABLE) (<REL-CL> (%WH WHICH) (<COP> (%BE IS) (<NEG> NIL)) (<PRED> (<A~
DJ> (%COLOR RED))))))))))) (<PRED> (<ADJ> (%SIZE SMALL)))) NIL)
(APPLY T-NP1)
(<NP1>
101
(<MOD1> NIL)
(<REL-CL>
(%WH WHICH)
(<COP>
(%BE IS)
(<NEG> NIL))
(<PRED>
(<PP>
(%PREP ON)
(<NP>
(%DET A)
(<NP1>
(<MOD1> NIL)
(%NOUN TABLE)
(<REL-CL>
(%WH WHICH)
(<COP>
(%BE IS)
(<NEG> NIL))
(<PRED>
(<ADJ>
(%COLOR RED)))))))))
(ISA 101 BALL))
(APPLY T-MOD1)
(<NP1>
101
(<REL-CL>
(%WH WHICH)
(<COP>
(%BE IS)
(<NEG> NIL))
(<PRED>
(<PP>
(%PREP ON)
(<NP>
(%DET A)
(<NP1>
(<MOD1> NIL)
(%NOUN TABLE)
(<REL-CL>
(%WH WHICH)
(<COP>
(%BE IS)
(<NEG> NIL))
(<PRED>
(<ADJ>
(%COLOR RED)))))))))
(ISA 101 BALL))
(ENTERING 2 INTERPRET-NP) (INTERPRET-NP ((<NP> (%DET A) (<NP1> (<MOD1~
> NIL) (%NOUN TABLE) (<REL-CL> (%WH WHICH) (<COP> (%BE IS) (<NEG> NIL~
)) (<PRED> (<ADJ> (%COLOR RED))))))) NIL)
(APPLY T-NP1)
(<NP1>
102
(<MOD1> NIL)
(<REL-CL>
(%WH WHICH)
(<COP>
(%BE IS)
(<NEG> NIL))
(<PRED>
(<ADJ>
(%COLOR RED))))
(ISA 102 TABLE))
(APPLY T-MOD1)
(<NP1>
102
(<REL-CL>
(%WH WHICH)
(<COP>
(%BE IS)
(<NEG> NIL))
(<PRED>
(<ADJ>
(%COLOR RED))))
(ISA 102 TABLE))
(APPLY T-REL-CL)
(<NP1>
102
(AND
(ISA 102 TABLE)
(SS
(<NEG> NIL)
102
(<PRED>
(<ADJ>
(%COLOR RED))))))
(APPLY T-PRED-ADJ)
(<NP1>
102
(AND
(ISA 102 TABLE)
(SS
(<NEG> NIL)
(%COLOR 102 RED))))
(APPLY T-NNEG)
(<NP1>
102
(AND
(ISA 102 TABLE)
(%COLOR 102 RED)))
(APPLY T-NP)
(<NP>
A
102
(AND
(ISA 102 TABLE)
(%COLOR 102 RED)))
ADDING TO FACT LIST:
(ISA OBJ05 TABLE)
ADDING TO FACT LIST:
(%COLOR OBJ05 RED)
(APPLY T-INDEF)
OBJ05
(LEAVING 2 INTERPRET-NP) OBJ05
(APPLY T-REL-CL)
(<NP1>
101
(AND
(ISA 101 BALL)
(SS
(<NEG> NIL)
101
(<PRED>
(<PP>
(%PREP ON)
OBJ05)))))
(APPLY T-PRED-PP)
(<NP1>
101
(AND
(ISA 101 BALL)
(SS
(<NEG> NIL)
(ON 101 OBJ05))))
(APPLY T-NNEG)
(<NP1>
101
(AND
(ISA 101 BALL)
(ON 101 OBJ05)))
(APPLY T-NP)
(<NP>
A
101
(AND
(ISA 101 BALL)
(ON 101 OBJ05)))
ADDING TO FACT LIST:
(ISA OBJ06 BALL)
ADDING TO FACT LIST:
(ON OBJ06 OBJ05)
(APPLY T-INDEF)
OBJ06
(LEAVING 1 INTERPRET-NP) OBJ06
(APPLY T-PRED-ADJ)
(<S>
RECORD
(SS
(<NEG> NIL)
(%SIZE OBJ06 SMALL)))
(APPLY T-NNEG)
(<S>
RECORD
(%SIZE OBJ06 SMALL))
ADDING TO FACT LIST:
(%SIZE OBJ06 SMALL)
(OKAY)
---------------------------------------------------------------------
2. INTERPRETATION OF THE INDEFINITE ARTICLE
IN THE ORIGINAL VERSION OF MILISY, THE INDEFINITE ARTICLE "A"
ALWAYS CAUSED THE ADDITION OF A NEW OBJECT TO THE FACT LIST. IN
CERTAIN CIRCUMSTANCES, THIS WAS CLEARLY INAPPROPRIATE. FOR EXAMPLE,
IN THE SENTENCE, "IS THERE A BALL ON A TABLEα, "A" HAS THE MEANING
"ANY", AND THE APPROPRIATE ACTION WOULD BE TO SEARCH THE FACT LIST
FOR ANY OCCURRENCE OF A BALL ON A TABLE.
THE CURRENT VERSION OF MILISY TREATS "A" AS "ANY" IN ALL
INTERROGATIVE SENTENCES. "A" IS ALSO TREATED AS "ANY" IN RELATIVE
CLAUSES MODIFYING A NOUN PHRASE BEGINNING WITH "THE"--E.G., "THE BALL
WHICH IS ON A TABLE WHICH IS ON A FLOOR". BY COMPARISON, "A BALL
WHICH IS ON THE TABLE WHICH IS ON A FLOOR" CAUSES A BALL TO BE
CREATED AND PUTS IT ON THE PRE-EXISTING TABLE WHICH IS ON SOME
PRE-EXISTING FLOOR.
THE SECOND ARGUMENT (*ANY) OF THE FUNCTION INTERPRET-NP KEEPS
TRACK OF WHETHER THE TRANSFORMATION RULE T-INDEF CREATES A NEW OBJECT
(*ANY = NIL), OR SEARCHES FOR PRE-EXISTING OBJECTS (*ANY = T). IN
INTERROGATIVE SENTENCES, *ANY IS ALWAYS EQUAL TO T, SO THAT CREATION
NEVER TAKES PLACE.
THE FUNCTIONS FIND AND VERIFY HAVE BEEN REWRITTEN TO ACCEPT
CALLS RESULTING FROM THE NEW INTERPRETATION OF THE INDEFINITE
ARTICLE. THE FOLLOWING CONVERSATION WILL ILLUSTRATE THE WORKINGS OF
THESE MODIFIED FUNCTIONS:
--------------------------------------------------------------------
HELLO
***(A RED BALL IS ON A RED TABLE)
THE FACT LIST IS INITIALLY:
NIL
ADDING TO FACT LIST:
(ISA OBJ07 BALL)
ADDING TO FACT LIST:
(%COLOR OBJ07 RED)
ADDING TO FACT LIST:
(ISA OBJ08 TABLE)
ADDING TO FACT LIST:
(%COLOR OBJ08 RED)
ADDING TO FACT LIST:
(ON OBJ07 OBJ08)
(OKAY)
***(IS THE BALL ON THE TABLE)
THE FACT LIST IS INITIALLY:
((ON OBJ07 OBJ08) (%COLOR OBJ08 RED) (ISA OBJ08 TABLE) (%COLOR OBJ07 ~
RED) (ISA OBJ07 BALL))
(ENTERING 1 FIND) (FIND 103 (ISA 103 BALL))
(LEAVING 1 FIND) (OBJ07)
(ENTERING 1 FIND) (FIND 104 (ISA 104 TABLE))
(LEAVING 1 FIND) (OBJ08)
(ENTERING 1 VERIFY) (VERIFY (ON OBJ07 OBJ08))
(LEAVING 1 VERIFY) TRUE
(YES)
***(IS THERE A BALL ON A TABLE)
THE FACT LIST IS INITIALLY:
((ON OBJ07 OBJ08) (%COLOR OBJ08 RED) (ISA OBJ08 TABLE) (%COLOR OBJ07 ~
RED) (ISA OBJ07 BALL))
(ENTERING 1 FIND) (FIND 105 (ISA 105 BALL))
(LEAVING 1 FIND) (OBJ07)
(ENTERING 1 FIND) (FIND 106 (ISA 106 TABLE))
(LEAVING 1 FIND) (OBJ08)
(ENTERING 1 VERIFY) (VERIFY (ON (OBJ07) (OBJ08)))
(ENTERING 2 VERIFY) (VERIFY (OR (ON OBJ07 OBJ08)))
(LEAVING 2 VERIFY) TRUE
(LEAVING 1 VERIFY) TRUE
(YES)
***(A GREEN BALL IS ON A GREEN TABLE)
THE FACT LIST IS INITIALLY:
((ON OBJ07 OBJ08) (%COLOR OBJ08 RED) (ISA OBJ08 TABLE) (%COLOR OBJ07 ~
RED) (ISA OBJ07 BALL))
ADDING TO FACT LIST:
(ISA OBJ09 BALL)
ADDING TO FACT LIST:
(%COLOR OBJ09 GREEN)
ADDING TO FACT LIST:
(ISA OBJ10 TABLE)
ADDING TO FACT LIST:
(%COLOR OBJ10 GREEN)
ADDING TO FACT LIST:
(ON OBJ09 OBJ10)
(OKAY)
***(IS THERE A BALL ON A TABLE)
THE FACT LIST IS INITIALLY:
((ON OBJ09 OBJ10) (%COLOR OBJ10 GREEN) (ISA OBJ10 TABLE) (%COLOR OBJ0~
9 GREEN) (ISA OBJ09 BALL) (ON OBJ07 OBJ08) (%COLOR OBJ08 RED) (ISA G0~
008 TABLE) (%COLOR OBJ07 RED) (ISA OBJ07 BALL))
(ENTERING 1 FIND) (FIND 111 (ISA 111 BALL))
(LEAVING 1 FIND) (OBJ07 OBJ09)
(ENTERING 1 FIND) (FIND 112 (ISA 112 TABLE))
(LEAVING 1 FIND) (OBJ08 OBJ10)
(ENTERING 1 VERIFY) (VERIFY (ON (OBJ07 OBJ09) (OBJ08 OBJ10)))
(ENTERING 2 VERIFY) (VERIFY (OR (ON OBJ07 OBJ10) (ON OBJ09 OBJ10) (ON~
OBJ07 OBJ08) (ON OBJ09 OBJ08)))
%THE NEW FUNCTION COMBINE GENERATES ALL COMBINATIONS OF BALLS
AND TABLES WHEN CALLED BY VERIFY%
(LEAVING 2 VERIFY) TRUE
(LEAVING 1 VERIFY) TRUE
(YES)
***(IS THERE A RED BALL ON A TABLE WHICH IS GREEN)
THE FACT LIST IS INITIALLY:
((ON OBJ09 OBJ10) (%COLOR OBJ10 GREEN) (ISA OBJ10 TABLE) (%COLOR OBJ0~
9 GREEN) (ISA OBJ09 BALL) (ON OBJ07 OBJ08) (%COLOR OBJ08 RED) (ISA G0~
008 TABLE) (%COLOR OBJ07 RED) (ISA OBJ07 BALL))
(ENTERING 1 FIND) (FIND 113 (AND (ISA 113 BALL) (%COLOR 113 RED)))
(ENTERING 1 VERIFY) (VERIFY (AND (%COLOR OBJ07 RED)))
(LEAVING 1 VERIFY) TRUE
(ENTERING 1 VERIFY) (VERIFY (AND (%COLOR OBJ09 RED)))
(LEAVING 1 VERIFY) NIL
(LEAVING 1 FIND) (OBJ07)
(ENTERING 1 FIND) (FIND 114 (AND (ISA 114 TABLE) (%COLOR 114 GREEN)))
(ENTERING 1 VERIFY) (VERIFY (AND (%COLOR OBJ08 GREEN)))
(LEAVING 1 VERIFY) NIL
(ENTERING 1 VERIFY) (VERIFY (AND (%COLOR OBJ10 GREEN)))
(LEAVING 1 VERIFY) TRUE
(LEAVING 1 FIND) (OBJ10)
(ENTERING 1 VERIFY) (VERIFY (ON (OBJ07) (OBJ10)))
(ENTERING 2 VERIFY) (VERIFY (OR (ON OBJ07 OBJ10)))
(LEAVING 2 VERIFY) FALSE
(LEAVING 1 VERIFY) FALSE
(NO)
***(THERE IS A BLOCK NEAR THE RED BALL WHICH IS ON A GREEN TABLE)
THE FACT LIST IS INITIALLY:
((ON OBJ09 OBJ10) (%COLOR OBJ10 GREEN) (ISA OBJ10 TABLE) (%COLOR OBJ0~
9 GREEN) (ISA OBJ09 BALL) (ON OBJ07 OBJ08) (%COLOR OBJ08 RED) (ISA G0~
008 TABLE) (%COLOR OBJ07 RED) (ISA OBJ07 BALL))
ADDING TO FACT LIST:
(ISA OBJ11 BLOCK)
(ENTERING 1 FIND) (FIND 117 (AND (ISA 117 TABLE) (%COLOR 117 GREEN)))
(ENTERING 1 VERIFY) (VERIFY (AND (%COLOR OBJ08 GREEN)))
(LEAVING 1 VERIFY) NIL
(ENTERING 1 VERIFY) (VERIFY (AND (%COLOR OBJ10 GREEN)))
(LEAVING 1 VERIFY) TRUE
(LEAVING 1 FIND) (OBJ10)
(ENTERING 1 FIND) (FIND 116 (AND (ISA 116 BALL) (%COLOR 116 RED) (ON ~
116 (OBJ10))))
(ENTERING 1 VERIFY) (VERIFY (AND (%COLOR OBJ07 RED) (ON OBJ07 (OBJ10)~
)))
(ENTERING 2 VERIFY) (VERIFY (OR (ON OBJ07 OBJ10)))
(LEAVING 2 VERIFY) FALSE
(LEAVING 1 VERIFY) FALSE
(ENTERING 1 VERIFY) (VERIFY (AND (%COLOR OBJ09 RED) (ON OBJ09 (OBJ10)~
)))
(LEAVING 1 VERIFY) NIL
(LEAVING 1 FIND) NIL
RESTORING FACT LIST TO:
((ON OBJ09 OBJ10) (%COLOR OBJ10 GREEN) (ISA OBJ10 TABLE) (%COLOR OBJ0~
9 GREEN) (ISA OBJ09 BALL) (ON OBJ07 OBJ08) (%COLOR OBJ08 RED) (ISA G0~
008 TABLE) (%COLOR OBJ07 RED) (ISA OBJ07 BALL))
(THERE IS NO RED BALL WHICH IS ON A GREEN TABLE)
-----------------------------------------------------------------------
3. EXTENSIONS OF MILISY'S GRAMMAR TO ALLOW MORE DETAILED
INTERROGATION OF THE DATA BASE
MILISY NOW ACCEPTS FOUR ADDITIONAL TYPES OF INTERROGATIVE
SENTENCES:
A) "WHAT <SIZE, COLOR> IS ......α
THE FUNCTION FIND IS USED IN ANSWERING THIS TYPE OF QUESTION.
B) "WHERE IS .....α (ALSO ACCEPTS "WHERE IS THERE......α,
THUS AVOIDING THE AWKWARD "WHERE IS A BALLα)
THE NEW FUNCTION LOCATE IS USED TO SELECT THOSE ELEMENTS OF
THE FACT LIST WHICH BEGIN WITH A PREPOSITION AND INVOLVE THE DESIRED
OBJECT(S). THE NEW FUNCTION LOCATIONS THEN TRANSFORMS THIS SUBSET
OF THE FACT LIST INTO A LIST OF LOCATIONS IN ENGLISH.
C) "HOW MANY <NOUN PHRASE> ARE THEREα
D) "HOW MANY <NOUN PHRASE> ARE <PREDICATE>α
IN (C) AND (D), THE PREPROCESSING FUNCTION SINGULARIZE IS
EMPLOYED PRIOR TO PARSING. THIS FUNCTION SINGULARIZES THE FIRST
PLURAL NOUN IT ENCOUNTERS IN THE INPUT STRING, LEAVING THE REMAINDER
OF THE STRING UNALTERED.
THE NEW FUNCTION COUNT EMPLOYS THE FUNCTION FIND, COUNTING
HOW MANY ELEMENTS ARE IN THE LIST RETURNED BY FIND AND CONVERTING
THIS NUMBER INTO LITERAL FORM IF IT IS FOUR OR LESS. THE REPLY IS
GIVEN IN NUMERICAL FORM IF GREATER THAN FOUR.
---------------------------------------------------------------------
4. MONITORING OF ADDITIONS TO DATA BASE IN ORDER TO PREVENT
REPETITIONS AND INCONSISTENCIES
THE NEW FUNCTION CHECK PREVENTS THE ADDITION OF NEW FACTS
WHICH ARE EITHER REPETITIONS OF A PREVIOUS FACT OR WHICH CONTRADICT A
PREVIOUS FACT. TWO TYPES OF CONTRADICTIONS ARE RECOGNIZED:
1) THE NEGATION OF A PREVIOUS FACT. MILISY REPLIES "YES IT
IS" OR "NO IT ISN'T", DEPENDING ON WHETHER OR NOT THE PREVIOUS FACT
WAS NEGATED.
2) ASSIGNMENT OF A SIZE OR COLOR INCONSISTENT WITH AN EARLIER
ASSIGNMENT. MILISY REPLIES, FOR EXAMPLE, "NOT TRUE! THE BALL IS
RED." IT IS NOW TRUE IN GENERAL, DUE TO MODIFICATIONS IN THE
FUNCTIONS FIND AND VERIFY (AND THEIR AUXILIARIES), THAT THE PROGRAM
CONSIDERS COLOR AND SIZE TO BE EXCLUSIVE ATTRIBUTES. THUS, THE
PROGRAM WILL NOW REPLY "NO" TO THE QUESTION "IS THE BALL BLUEα IF IT
KNOWS THAT THE BALL IS RED, INSTEAD OF ANSWERING "I DON'T KNOW," AS
WAS FORMERLY THE CASE. "HOW MANY BLOCKS ARE NOT RED" WILL INITIATE A
COUNT OF BLOCKS WHICH HAVE BEEN ASSIGNED COLORS OTHER THAN RED, AS
WELL AS THOSE WHICH HAVE BEEN EXPLICITLY DESIGNATED AS NOT RED.
NOTE THAT LOCATIONAL INCONSISTENCIES ARE STILL POSSIBLE, SUCH
AS AN OBJECT BEING BOTH ON AND UNDER THE SAME TABLE.
REDUNDANT FACTS RESULT IN THE REPLY, "YES, I KNOW."
---------------------------------------------------------------------
5. SOME FURTHER POSSIBILITIES ALONG SIMILAR LINES
1) IMPLEMENT ORDINAL NUMBERS. IN THE PRESENT VERSION OF
MILISY, ANY OBJECT WHICH HAS NOT BEEN DESCRIBED WITH A COLOR, SIZE,
OR LOCATION IS LOST TO FURTHER DESCRIPTION IF ANOTHER OBJECT OF THE
SAME TYPE EXISTS. THIS IS SO BECAUSE IT IS THEN IMPOSSIBLE TO
REFERENCE THE OBJECT UNAMBIGUOUSLY. THIS PROBLEM WOULD BE SOLVED IF
MILISY WERE MADE TO RECOGNIZE THAT "THE FIRST TABLE" REFERS TO THE
TABLE CREATED EARLIEST, ETC. INFORMATION AS TO THE ORDER OF
CREATION OF THE VARIOUS OBJECTS IS ALREADY IMPLICIT IN THE ORDER OF
THE FACTS COMPRISING MILISY'S FACT-BASE; IN THE PRESENT VERSION, THE
FIRST TABLE WILL ALSO BE THE FIRST ELEMENT IN THE LIST RETURNED BY
THE FUNCTION FIND WHEN SEARCHING FOR TABLES.
2) IMPLEMENT THE NOUN "OBJECT(S)", SO THAT MILISY CAN HANDLE
SENTENCES SUCH AS, "HOW MANY OBJECTS ARE BLUEα, "WHAT RED OBJECTS ARE
UNDER THE TABLEα, AND "IS THERE A SMALL OBJECT IN A BOXα PROBABLY,
ONE WOULD WANT "OBJECT(S)" TO BE LEGAL ONLY IN INTERROGATIVE
SENTENCES.
3) EXTEND MILISY'S DEFINITION OF <PRED> TO INCLUDE COMPOUND
PREDICATES CONNECTED BY "AND", SUCH AS IN THE SENTENCE, "WHAT IS
SMALL AND BLUEα, OR "THE BALL IS ON THE TABLE AND NEAR THE BOX."
---------------------------------------------------------------------